/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ppsa.dao;

import com.ppsa.bean.EmpleadoBean;
import com.ppsa.bean.PerfilBean;
import com.ppsa.bean.ReunionBean;
import com.ppsa.bean.TareaBean;
import com.ppsa.common.Constantes;
import java.util.List;


import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author AdminTdp
 */
public class EmpleadoDao extends AccesoDao {

    public EmpleadoDao() throws AccesoDaoException {
        super();
    }
    public EmpleadoBean obtenerEmpleadoResponsable( String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo ) throws Exception {
        EmpleadoBean objL_empleado = new EmpleadoBean();

        try {
            //this.objPt_conn = objPt_dataSource.getConnection();
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerResponsable(?,?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            objPt_cstmt.setString(3, strpv_tipo);
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return objL_empleado;
    }
    public List<EmpleadoBean> listarEmpleado() throws Exception {
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();

        EmpleadoBean objL_empleado = null;
        //TareaBean objL_tarea = null;
        try {
            //this.objPt_conn = objPt_dataSource.getConnection();
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_listaEmpleado() }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);

            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                objL_empleado = new EmpleadoBean();
                //System.out.println("--->" + objPt_rs.getString("NOMBRE"));
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
           
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
    
 public List<EmpleadoBean> obtenerUsuarioDocuLeido( String strpv_codigoDocumento, String strpv_codigoVersion ) throws Exception {
        System.out.println("[DAO/obtenerUsuarioDocuLeido] << ENTER");
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerUsuarioLeidos(?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            System.out.println("|"+strpv_codigoDocumento + "||" + strpv_codigoVersion + "|");
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                System.out.println("*****************----------");
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
 public List<EmpleadoBean> obtenerUsuarioDocuNoLeido( String strpv_codigoDocumento, String strpv_codigoVersion ) throws Exception {
        System.out.println("[DAO/obtenerUsuarioDocuNoLeido] << ENTER");
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerUsuarioNoLeidos(?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            System.out.println("|"+strpv_codigoDocumento + "||" + strpv_codigoVersion + "|");
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                System.out.println("*****************----------" + objPt_rs.getString("NOMBRE"));
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
 public List<EmpleadoBean> obtenerAreaCargoBitacora( String strpv_codigoDocumento, String strpv_codigoVersion ) throws Exception {
        System.out.println("[DAO/obtenerAreaCargoBitacora] << ENTER");
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerUsuarioLeidos(?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            System.out.println("|"+strpv_codigoDocumento + "||" + strpv_codigoVersion + "|");
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                System.out.println("*****************----------");
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
 
    public List<EmpleadoBean> obtenerEmpleadoResponsableCopia( String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo ) throws Exception {
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerResponsable(?,?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            objPt_cstmt.setString(3, strpv_tipo);
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
    public List<EmpleadoBean> obtenerEmpleadoxDocumento( String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo ) throws Exception {
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerResponsable(?,?,?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_codigoDocumento);
            objPt_cstmt.setString(2, strpv_codigoVersion);
            objPt_cstmt.setString(3, strpv_tipo);
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }
    public List<EmpleadoBean> listarEmpleadoxPerfil( String strpv_perfil ) throws Exception {
        List<EmpleadoBean> lstL_Empleado = new ArrayList<EmpleadoBean>();
        EmpleadoBean objL_empleado = null;
        
       try {
            this.objPt_conn = DriverManager.getConnection(strpv_conexionUrl);
            String strl_procedure = "{ call ppsa_sp_obtenerEmpleadoxPerfil(?) }";
            objPt_cstmt = objPt_conn.prepareCall(strl_procedure);
            objPt_cstmt.setString(1, strpv_perfil);
            objPt_rs = objPt_cstmt.executeQuery();
            while( objPt_rs.next() ) {
                objL_empleado = new EmpleadoBean();
                objL_empleado.setStrpv_codigoEmpleado(objPt_rs.getString("ID_EMPLEADO"));
                objL_empleado.setStrpv_nombreEmpleado(objPt_rs.getString("NOMBRE"));
                lstL_Empleado.add(objL_empleado);
            }
        } catch ( Exception ex ) {
            ex.printStackTrace();
        } finally {
            closeCallableStatement(objPt_cstmt);
            closeResultSet(objPt_rs);
            closeConnection(objPt_conn);
        }
        return lstL_Empleado;
    }    
    
    
}
